//package com.example.jpa.query.controller;
//
//import com.example.jpa.query.entities.User;
//import com.example.jpa.query.repository.JpaRepositories;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.domain.Example;
//import org.springframework.data.domain.ExampleMatcher;
//import org.springframework.data.domain.Sort;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.List;
//
//@RestController
//public class JpaRepositoryController {
//
//    @Autowired
//    private JpaRepositories repositories;
//
//    /**
//     * 查询所有数据
//     * @return List
//     * url: http://localhost:8080/findAll
//     * method: GET
//     * 测试数据: null
//     */
//    @GetMapping("findAll")
//    public List<User> findAll() {
//        return repositories.findAll();
//    }
//
//    /**
//     * 查询所有数据
//     * @return List
//     * url: http://localhost:8080/findAllSort
//     * method: GET
//     * 测试数据: null
//     */
//    @GetMapping("findAllSort")
//    public List<User> findAllSort() {
//        return repositories.findAll(Sort.by(Sort.Direction.DESC,"id")); //根据id倒序显示
//    }
//
//    /**
//     *
//     * @param ids
//     * @return List
//     * url: http://localhost:8080/findAllSort
//     * method: GET
//     * 测试数据: [1,2]
//     */
//    @GetMapping("/findAllById")
//    List<User> findAllById(List<Long> ids) {
//        return repositories.findAllById(ids);
//    }
//
//    /**
//     *
//     * @param userList
//     * @return
//     * url: http://localhost:8080/saveAll
//     * method: POST
//     * 测试数据: [1,2]
//     */
//    @PostMapping("/saveAll")
//    public List<User> saveAll(@RequestBody List<User> userList) {
//        return repositories.saveAll(userList);
//    }
//
//    /**
//     *
//     * @param user
//     * @return
//     * url: http://localhost:8080/saveAll
//     * method: POST
//     * 测试数据: [1,2]
//     */
//    @PostMapping("/saveAndFlush")
//    public User saveAndFlush(@RequestBody User user) {
//        return repositories.saveAndFlush(user);
//    }
//
//    /**
//     *
//     * @param userList
//     * url: http://localhost:8080/deleteInBatch
//     * method: DELETE
//     * 测试数据:
//     */
//    @DeleteMapping("/deleteInBatch")
//    public void deleteInBatch(@RequestBody List<User> userList) {
//        repositories.deleteInBatch(userList);
//    }
//
//    /**
//     *  url: http://localhost:8080/deleteAllInBatch
//     *  method: DELETE
//     *  测试数据: null
//     */
//    @DeleteMapping("/deleteAllInBatch")
//    public void deleteAllInBatch() {
//        repositories.deleteAllInBatch();
//    }
//
//    /**
//     *
//     * @param id
//     * @return User
//     * url: http://localhost:8080/getOne/1
//     * method: GET
//     * 测试数据: 1
//     */
//    @GetMapping(path = "/getOne/{id}")
//    public User getOne(@PathVariable(value = "id") Long id) {
//        return repositories.getOne(id);
//    }
//
//    /**
//     *
//     * @param example
//     * @return List
//     * url: http://localhost:8080/findAllByExample
//     * method: GET
//     * 测试数据:
//     */
////    @GetMapping(path = "/findAllByExample")
////    public List<User> findAllByExample() {
////        Example<User> example = Example.of(new User(), ExampleMatcher.().withMatcher(
////                "M", ExampleMatcher.GenericPropertyMatcher
////                        .of(ExampleMatcher.StringMatcher.STARTING)));
////
////        return repositories.findAll(example);
////    }
//
//    /**
//     *
//     * @param example
//     * @param sort
//     * @return List
//     * url: http://localhost:8080/findAllByExampleAndSort
//     * method: GET
//     * 测试数据:
//     */
//    @GetMapping(path = "/findAllByExampleAndSort")
//    public List<User> findAllByExampleAndSort(Example<User> example,Sort sort) {
//        ExampleMatcher matcher = example.getMatcher();
////        matcher.withMatcher("",);
//        return repositories.findAll(example,sort);
//    }
//
//
//}
